package br.edu.unilasalle.simon_test.cadastro;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import br.edu.unilasalle.simon_test.AbstractPage;

public class ProdutoPage extends AbstractPage {

	@FindBy(id = "btnAdicionar")
	protected WebElement adicionar;
	
	@FindBy(id = "referencia")
	protected WebElement referencia;
	
	@FindBy(id = "descricao")
	protected WebElement descricao;
	
	@FindBy(id = "observacao")
	protected WebElement observacao;
	
	@FindBy(id = "unidade")
	protected WebElement unidade;
	
	@FindBy(linkText = "Estoque")
	protected WebElement menuEstoque;
	
	@FindBy(id = "selForn")
	protected WebElement selForn;
	
	@FindBy(id = "selLoja")
	protected WebElement selLoja;
	
	@FindBy(id = "locEstoque")
	protected WebElement locEstoque;
	
	@FindBy(id = "quantidade")
	protected WebElement quantidade;
	
	@FindBy(id = "preco1")
	protected WebElement preco1;
	
	@FindBy(id = "preco2")
	protected WebElement preco2;
	
	@FindBy(id = "btnAtualizar")
	protected WebElement atualizar;
	
	@FindBy(id = "btnIncluir")
	protected WebElement incluir;
	
	public ProdutoPage(WebDriver driver) {
		super(driver);
	}
	
	public void abreTela() {
		openAsAdmin();
		open("/#/produtos-list");
	}
	
	public void cadastrarProduto() throws Exception {
		adicionar.click();
		
		type(referencia, "TST01");
		type(descricao, "prodTeste");
		type(observacao, "Observação Teste");
		type(unidade, "Peça");
		
		menuEstoque.click();
		selectComboByValue(selForn, "1"); // Seleciona fornecedor 1
		selectComboByValue(selLoja, "1"); // Seleciona loja 1
		type(locEstoque, "Mesanino");
		type(quantidade, "1");
		type(preco1, "1,99");
		type(preco2, "1,99");
		
		find(incluir).click();
		waitAjaxComplete();
	}

	public void editarProduto() {
		detalharRegistro("prodTeste");
		descricao.clear();
		type(descricao, "prodTeste2");
		atualizar.click();
		waitAjaxComplete();
	}

}
